{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Speech Recognition Workflow.ipynb",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "id": "Zr8saN_syu3b"
      },
      "source": [
        "# Source of the Audio File: Sample Audio File Download\n",
        "# Import the packages needed for this analysis\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from scipy.io import wavfile"
      ],
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "IYk8djdoy70c",
        "outputId": "871147cf-535a-4cdd-c582-8ea00683829f"
      },
      "source": [
        "freq_sample, sig_audio = wavfile.read(\"/content/Welcome.wav\")\n"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: WavFileWarning: Chunk (non-data) not understood, skipping it.\n",
            "  \"\"\"Entry point for launching an IPython kernel.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zUi-bpIo02Ka",
        "outputId": "e606853f-76b6-4413-fd56-f5fb7faf2ad1"
      },
      "source": [
        "# Output the parameters: Signal Data Type, Sampling Frequency and Duration\n",
        "print('\\nShape of Signal:', sig_audio.shape)\n",
        "print('Signal Datatype:', sig_audio.dtype)\n",
        "print('Signal duration:', round(sig_audio.shape[0] / float(freq_sample), 2), 'seconds')"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\n",
            "Shape of Signal: (645632,)\n",
            "Signal Datatype: int16\n",
            "Signal duration: 40.35 seconds\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 295
        },
        "id": "RPEgyUoG1sck",
        "outputId": "6c196a6a-7845-49c2-9da2-c281aca0838b"
      },
      "source": [
        "# Normalize the signal values\n",
        "pow_audio_signal = sig_audio / np.power(2, 15)\n",
        "# We shall now extract the first 100 values from the signal \n",
        "pow_audio_signal = pow_audio_signal [:100]\n",
        "time_axis = 1000 * np.arange(0, len(pow_audio_signal), 1) / float(freq_sample)\n",
        "\n",
        "# Visualize the signal\n",
        "plt.plot(time_axis, pow_audio_signal, color='blue')\n",
        "plt.xlabel('Time (milliseconds)')\n",
        "plt.ylabel('Amplitude')\n",
        "plt.title('Input audio signal')\n",
        "plt.show()"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5YY8G8VP1ynz"
      },
      "source": [
        "sig_audio = sig_audio / np.power(2, 15)"
      ],
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "z2FVXDL57dsg"
      },
      "source": [
        "# Extracting the length and the half-length of the signal to input to the foruier transform\n",
        "sig_length = len(sig_audio)\n",
        "half_length = np.ceil((sig_length + 1) / 2.0).astype(np.int)\n",
        "# We will now be using the Fourier Transform to form the frequency domain of the signal\n",
        "signal_freq = np.fft.fft(sig_audio)\n",
        "# Normalize the frequency domain and square it \n",
        "signal_freq = abs(signal_freq[0:half_length]) / sig_length\n",
        "signal_freq **= 2\n",
        "transform_len = len(signal_freq)"
      ],
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        },
        "id": "a2HRz6UY7hXE",
        "outputId": "53af4db3-1168-42ed-ebbf-8aaab4b6e7a7"
      },
      "source": [
        "# The Fourier transformed signal now needs to be adjusted for both even and odd cases\n",
        "if sig_length % 2:\n",
        "    signal_freq[1:transform_len] *= 2\n",
        "else:\n",
        "    signal_freq[1:transform_len-1] *= 2\n",
        "# Extract the signal's strength in decibels (dB)\n",
        "exp_signal = 10 * np.log10(signal_freq)\n",
        "x_axis = np.arange(0, half_length, 1) * (freq_sample / sig_length) / 1000.0\n",
        "plt.figure()\n",
        "plt.plot(x_axis, exp_signal, color='green', linewidth=1)\n",
        "plt.xlabel('Frequency Representation (kHz)')\n",
        "plt.ylabel('Power of Signal (dB)')\n",
        "plt.show()"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "J0iFO_1u7ksH",
        "outputId": "0cbc4589-e825-4020-f90b-808f725a06eb"
      },
      "source": [
        "pip install python_speech_features"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting python_speech_features\n",
            "  Downloading https://files.pythonhosted.org/packages/ff/d1/94c59e20a2631985fbd2124c45177abaa9e0a4eee8ba8a305aa26fc02a8e/python_speech_features-0.6.tar.gz\n",
            "Building wheels for collected packages: python-speech-features\n",
            "  Building wheel for python-speech-features (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for python-speech-features: filename=python_speech_features-0.6-cp37-none-any.whl size=5888 sha256=7f3d3360efd4d2bb5043a76cd212bcb321cd041711ae2217fec79ae9fdb7fdc0\n",
            "  Stored in directory: /root/.cache/pip/wheels/3c/42/7c/f60e9d1b40015cd69b213ad90f7c18a9264cd745b9888134be\n",
            "Successfully built python-speech-features\n",
            "Installing collected packages: python-speech-features\n",
            "Successfully installed python-speech-features-0.6\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RjCruKD--oEy",
        "outputId": "9e9f8ee0-62d2-4862-c567-18f335627e74"
      },
      "source": [
        "from python_speech_features import mfcc, logfbank\n",
        "sampling_freq, sig_audio = wavfile.read(\"/content/Welcome.wav\")"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:2: WavFileWarning: Chunk (non-data) not understood, skipping it.\n",
            "  \n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "I-WW7rdV-sGw",
        "outputId": "1410da84-7cd2-4303-bb04-6cf59b510944"
      },
      "source": [
        "# We will now be taking the first 15000 samples from the signal for analysis\n",
        "sig_audio = sig_audio[:15000]\n",
        "# Using MFCC to extract features from the signal\n",
        "mfcc_feat = mfcc(sig_audio, sampling_freq)\n",
        "print('\\nMFCC Parameters\\nWindow Count =', mfcc_feat.shape[0])\n",
        "print('Individual Feature Length =', mfcc_feat.shape[1])"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\n",
            "MFCC Parameters\n",
            "Window Count = 93\n",
            "Individual Feature Length = 13\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 198
        },
        "id": "Fl85a9NA-u8O",
        "outputId": "ff1bf8c0-fb19-460f-ca96-9739564d0f23"
      },
      "source": [
        "mfcc_feat = mfcc_feat.T\n",
        "plt.matshow(mfcc_feat)\n",
        "plt.title('MFCC Features')"
      ],
      "execution_count": 18,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.05, 'MFCC Features')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 18
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1152x161.032 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xgHGLBOY_DWm",
        "outputId": "7106ba5d-7379-4349-c893-c334068e9e9b"
      },
      "source": [
        "# The first horizontal yellow lines below every segment are the fundamental frequency and at its strongest. Above the yellow line are the harmonics that share the same frequency distance between them\n",
        "# Generating filter bank features\n",
        "fb_feat = logfbank(sig_audio, sampling_freq)\n",
        "print('\\nFilter bank\\nWindow Count =', fb_feat.shape[0])\n",
        "print('Individual Feature Length =', fb_feat.shape[1])"
      ],
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\n",
            "Filter bank\n",
            "Window Count = 93\n",
            "Individual Feature Length = 26\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 285
        },
        "id": "RWDgFuB1_HLq",
        "outputId": "84ab5d40-b9e2-4d65-fc75-2ed599c6761e"
      },
      "source": [
        "fb_feat = fb_feat.T\n",
        "plt.matshow(fb_feat)\n",
        "plt.title('Features from Filter bank')\n",
        "plt.show()"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0AAAAEMCAYAAADtZtZ8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de5Sl2V3e9+d3rnXtru6emZ4ro2tAslhIzqCQgG1iYSzETawkGBljkZDIXjEBeYExIV4xDk5MvBCKYnux1iApCCzABHERRsYIGSOzjGVGSAYJmUhIM9Mzmu7pnr7VpavObeePc1rUtKb38+uu01XV834/a82artpv7Xef993vfs8+l/1EKUUAAAAA0AStg24AAAAAAOwXJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABqDCRAA4JaIiG+KiFMRsRERrzro9khSRHxrRPz6rp9LRLzkFu7vJyLi79+iuh+NiK+6FXUDwPMZEyAAOCCzJ7BXZhOEq//dO4c6D8uT4h+R9J2llJVSykf2c8cR8ZURMbnm2P5KKeXdpZSvvs7f3LLJCgDg8OgcdAMAoOG+vpTyGwfdiKsiolNKGc2pugclfXwf9nM9ny2l3H+L9/E5+/SYAAB7xDtAAHDIRMTRiHhHRDwVEU9GxN+PiPas7MUR8a8i4pmIOBcR746ItVnZT0n6Akm/MnvH4/tm74Q8cU39n3uXKCJ+MCJ+PiL+aURclvTtZv8viYjfiohLs/3/s+dofz8iNiS1Jf2HiPjjXfv92xHx+5I2I6ITEd8QER+PiIsR8a8j4mXXtPNvRcTvR8TmrE0nI+JfRMR6RPxGRBy7wWP77RHx28/x+zdJ+lZJ33f13aLZ7++NiPdExNmI+ExEfNeuv/m8Y3ed3d4REe+ftfm3IuLBXXW8bfYxwcsR8eGI+DPX1P9zEfGTs7/9eEQ8dJ3H9bJZ+95wI8cDAJqICRAAHD4/IWkk6SWSXiXpqyX997OykPQPJN0r6WWSHpD0g5JUSvk2SY9r+q7SSinlHyb3942Sfl7SmqR3m/3/kKRfl3RM0v2S/tG1lZVSdkopK7Mfv6SU8uJdxW+Q9LWzfb1I0s9IerOkOyW9T9PJW2/X9v+VpL8g6T+R9PWS/oWkH5ht35L0XZqDUsrDmj72fzg7dl8fES1JvyLpP0i6T9JrJL05Iv7irj+99tg9l2/V9LjdIemj12z3u5JeKem4pJ+W9P9GxMKu8m+Q9LOz+t8r6R9fW3lE/GlJ/1LS/1RK+ZkbedwA0ERMgADgYP3S7N2PixHxSxFxUtLrJL25lLJZSnla0lslfYsklVI+VUp5/2yScVbSj0r6c3tsw++UUn6plDKRdKS2f0lDTT/adm8pZbuU8nnvphj/dynlVCnliqS/JOlXZ49nqOl3hhYl/Re7tv9HpZQzpZQnJf0bSR8qpXyklLIt6Rc1naBdz727ju3FiPjmG2zrl0q6s5Tyv5VSBqWUT0v6cf3JsZB2HbvZY3ouv1pK+WApZUfS/yLpP4+IBySplPJPSynPlFJGpZS3SOpL+sJdf/vbpZT3lVLGkn5K0pdcU/ef0XRi9FdLKf/8Bh8fADQS3wECgIP1+t3fAYqIV0vqSnoqIq7+uiXp1Kz8pKS3afrEd3VWdmGPbTi1698P1vYv6fs0fTfj30fEBUlvKaW88yb3da+kx67+UEqZRMQpTd9tuerMrn9feY6fV3R9n/cdoIj49hto64OaTaJ2/a6t6UTsqlPyPrdNKWUjIs5r+thPRcT3SvqO2c9F0wnoHbv+9vSuf29JWrjmu0Z/XdJvlVL+de4hAQCYAAHA4XJK0o6kO67zhfr/Q9Mnyl9cSjkfEa/Xsz8WVa7ZflPS0tUfZt/lufOabXb/TXX/pZTTkv6HWV1fIek3IuKDpZRPZR7cNfv6rKQv3tW20PQjfU8m65q3a4/dKUmfKaW89Ab+5rk8cPUfEbGi6cfdPjv7vs/3afrRuo/PJoAXNP2YY9Zfl/S3I+KtpZS/eQN/BwCNxUfgAOAQKaU8pel3bN4SEUciojVb+ODqx9xWJW1IuhQR90n6W9dUcUbT79Zc9f9p+q7B10ZEV9Lf0fRjVje1/4j4byLi6rsqFzSdAExu8uH+nKSvjYjXzNr2PZpOvv7tTda3V9ceu38vaX22cMNiRLQj4hUR8aU3WO/rIuIrZt9t+iFJ/66UckrTczmSdFZSJyL+V03fAboR65JeK+nPRsQP3+DfAkAjMQECgMPnr0rqSfpDTScZPy/pnlnZ35P0pyVdkvSrkn7hmr/9B5L+zuw7L99bSrkk6X+U9HZN31nZlPSE6mr7/1JJH5qt8vZeSd89+27MDSul/JGkv6LpQgrnNF3k4OtLKYObqW8O3iHp5Ve/jzX73s3XabpIwWdmbXy7pKM3WO9PS/q7ks5L+k81fczSdOGCX9N0kvqYpG3lPlL3LKWUi5ouFPE1EfFDN/r3ANA0UUrm3ftbsOOI12r6Ofa2pLeXUnjlCofC7MvJPynppKavbj9cSnlbRByX9M8kvUDSo5K+uZSy1+9eAHMx+2jbI5KeLKV8XUS8UNPVw05I+rCkbzvAiQXwOTFdtv3tkl6h6Rj730n6IzG+4pCJiL+p6QqYRdIfSPpvNX0xiLH1Nncg7wDNbtT/RNLXSHq5pDdExMsPoi3AcxhJ+p5SysslfZmkvzHrn98v6QOz7wN8YPYzcFh8t6RP7Pr5/5T01lLKSzR9F+c7DqRVwOd7m6RfK6V8kaar2n1CjK84ZGYfMf4uSQ+VUl6h6Qv23yLG1ueFg/oI3KslfaqU8unZrPlnNc1SAA5cKeWpUsrvzf69runN+T5N++i7Zpu9S9LrD6aFwLPNvpPztZq+qn51MYE/r+lH1yT6Kw6JiDgq6c9q+nFDzZYXvyjGVxxOHUmLEdHRdDGZp8TY+rxwUBOg+/Tszzk/oWcvewocChHxAk1zRj4k6eTsC+LSdGnakwfULOBa/5emq4ldXYzghKSLu1ZxY4zFYfFCTRd9+H8i4iMR8faIWBbjKw6ZWfbYj2gaLv2Upt+7/LAYW58XWAQBuI7ZcrXv0TQQ8vLusjL98tzBfIEO2CUivk7S06WUDx90W4CEjqaLePxYKeVVmi7K8ayPuzG+4jCIiGOavjP5Qk1zupY1XXERzwMHNQF6UrtyESTdr4PLfQA+z2xJ3vdIencp5eoqW2ci4p5Z+T2Snj6o9gG7fLmkb4iIRzX9OPGf1/Q7Fmuzj21IjLE4PJ6Q9EQp5UOzn39e0wkR4ysOm6/SNAfsbCllqOmKm18uxtbnhYOaAP2upJdGxAtnuQjfoulyqsCBm31/4h2SPlFK+dFdRe+V9MbZv98o6Zf3u23AtUop/3Mp5f5Sygs0HUv/VSnlWyX9pqT/erYZ/RWHwixI91REfOHsV6/RdLl1xlccNo9L+rKIWJo9L7jaVxlbnwcOchns12n6ufW2pHeWUv73A2kIcI1Zuv2/0XTJy6vfqfgBTb8H9HOSvkDTzI5vLqWcP5BGAs8hIr5S0vfOlsF+kabvCB2X9BFJf6WUsnOQ7QMkKSJeqemCHT1Jn9Z0aeGWGF9xyETE35P0lzRdHfYjmi6JfZ8YW297BzYBAgAAAID9xiIIAAAAABqDCRAAAACAxmACBAAAAKAxmAABAAAAaAwmQAAAAAAa40AnQBHxpoPcP3Aj6K+4ndBfcbugr+J2Qn99fjjod4DoRLid0F9xO6G/4nZBX8XthP76PHDQEyAAAAAA2Df7GoTai35Z0PLnfh5qR131n92gVn1OlmrvHB6Ta0eqLc+jdmTasl/nRksLfjftvc/t45q2Doab6nX/pP+Wdtg6Rot+m9I25b4KK3oT346J31GnO66Wr3Z9GPaVcdc0xFahbqvejoxOJI6JKR+6kyepzOMEJg5K0bP3M7h4Rb21xc/93E483kmpXzeZOsZzeLzDiT+u7agfk3bLtzXTB1pmPxl2iJY/ZhNzXGMO7ZT8MRmbPiJJkbmId7lyYUeLx579XCCzH3f9jRNj2nhS389klLiXJLp8tOvHtdf2Y9pCe1Qtz1yfrdRYsnfu/A0mnUQd/sDuDE09472PR53es8/N6NKWOkeXnvU7d31mxqMMt5/M/WaxO6yW9xL317b843H9MdPPXD+amPdxLn12U1cu7DznQfE9sCIiXivpbZLakt5eSvnh2vYLWtZ/Fq+p1tlaXKqWl2F9AJCkMjYnb+JPrmtHpi22HYm2HJZ2ZNqyX+cmvuhP2W0GJ+qTpMxzhdaofvEOV/zlc+4V5sm+pMFavTGJ+4RKu15H74FNW8fOlm/rXXderpb/uXs+Zev4+KV7quVugJekk4vr1fLME9u17pbdxj3BOr19xNYxMk+wMjJPwrfNxHKt5x/v1qhXLc9McDdNHRmnN/1xXenV27LWu2LruKO/YbdZbNefLGTsmIt4lJjwuRcO+ubJcdZap95PNsb9arkkdaM+jo8THz5ZH/oXus5sr1bLL+/4Op7ZqN/Xti4uVsslKTp+vFlYHlTLHzh20dbxhUfPVMuPdLZ9O1q+P2de2HE2RvV+8tjWcVvHpYE/9p85fUe1fHzJ39dcd7zjfn9udkb1Y7a64MfOjG0z4RuO/bl7xZ2nq+UPLF2wdRxt+/H1qBlLMv3s0shcn5P6/ean/vIHrlt203fmiGhL+ieSvkbSyyW9ISJefrP1AQAAAMCttpeXJl8t6VOllE+XUgaSflbSN86nWQAAAAAwf3uZAN0n6dSun5+Y/e5ZIuJNEfFIRDwy1HzeAgQAAACAm3HLV4ErpTxcSnmolPLQtQseAAAAAMB+2ssE6ElJD+z6+f7Z7wAAAADgUNrLBOh3Jb00Il4YET1J3yLpvfNpFgAAAADM300vg11KGUXEd0r6l5oug/3OUsrHa38TnY7ax++s17tdX8axffddvm2bZrnXSWIdfNOOTFtsOxJtOSztyLRlv85NZlXh3oV6Wyc93/UHx+vLK+4c8Us4thIr03Yv15d9Hi35YzI8Xt9mZdF//2573X9E1S1z/bLFz9o63DbbE79sqVsWOrO8pluqV/JLcr944ayto2WW5M7kKWSWrrVLD88hn2e7+CWunx76Jawfu3KiWn6h45f/d+dmuVNfdljKLXG92q6PJUstvx/XB3YSfd7lYWT6/AWzpGymnmOJ5eMvjerLF58f+HZ0E0vZXxnVj9swcbMYDsy9YJi44ZgYAkkamTyhk0v1iAHJL3Pt+qokrSS2OTesLy8+SQQfuaXO3ZL7knRp2y9jPt42/X4hkb8zh0yx6dPg69vY9vfXB4/55ac/tVFf9jvjnoVL1fL7e74dd3Z8f/X3Pn/dvLRfX7L74ni5Wr5YGZ/3lANUSnmfpPftpQ4AAAAA2C+3fBEEAAAAADgsmAABAAAAaAwmQAAAAAAagwkQAAAAgMZgAgQAAACgMZgAAQAAAGiMPS2DfaNKv6vxC++ubhMmB2bU8uvPx4n6GvaZOAzXjkxbXDsybTks7ci0Zb/OzaTvu21pm2My8uv6lzB1JKIBJokrbGLiEIqPCFHp1RtzZMFnP8jHONl8gEy2Tjfq4UiZOva6D0laCJ8B0zNtaSUyfCbmdaZxIlMjk5ewbTpKJl/p4riez/LE4Lit4/LIZ3eMTKbNsb7Pmnlmu57/cGpzzdZxvLdpt7mjs14tX2r5jC3XBxY6vi+6TI2tic8ZuaPrt9kY189fJm/IZSNttnw7PnmpnhkoSZdNtsr2wPf5bq8+VgyLb2tGp1M/f3f2Nmwdxzv1/tpP5IVlcsfcfi6N6zlPkrQ5qh83l+EkSc9cWLHbONFKZByOzb3e5ARJUjFPXo4s+nvw5tBnI/W79f660PN9wOVJZfpRZtxba9fH8eXwGWru3rfaqj+WXuW5AO8AAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABqDCRAAAACAxmACBAAAAKAx9jUIVZJkwjJLIkzTGpogxa4PctuXdiTacljasW9tSbSjteNDLm1uWSIIVWv1ULLhkj8e40SG3qRbb+x4wYewtZfrwWWdRGrrfauX7DbrJiTxaNsHS66akLUTbR8I6MLRBomwxgwXYDnU3vczNqGgkpSJhl1tXamWH08cVxdclwnbfHTrhN9Pt97WXstf4xMTPNhpJa7xfTKPcN+J6SeZYN9VE4AoSe1uPew4sx93/Z0dHbF1uPMrSY+3j1XLnxwctXUMh/W2xiQRVNzz59cFZa50fLDkHZ3L1fK7O34MP2KCIyUfznxxUg9MzvjY+bvtNu2OP66TgXkOZUJOJUnD+rXVSgSh9jr1McvXIC13fTDomXE9TL4z9uNe2zwfWEvcx929QvJj1tlJ/bFIvi9umyT5UWUs4h0gAAAAAI3BBAgAAABAYzABAgAAANAYTIAAAAAANAYTIAAAAACNwQQIAAAAQGMwAQIAAADQGPufA2SEyYkpbT9nm/TqDyuKX5HdtSPTFteOTFsOSzsybdm3c5NY5961Na749fbDZB0k4ls06WdW/69rDXyOQbdXzyCYmLX0JWmUeEAuPyBjuVXPu1hN5FQsR/3xdhPt7CaSGdpziL7aNvkf65OurWOYyDVyeQmbiQyfx4f1DJ8zQ5/fMpj4tl4cLlbLF9s+a+auhXqu0We3fAbMxy/dY7dZX65nX611fB5Gt1UfjzI5QX2Tn+UyNyTp/GjZbrParl9/mbbe0Vm32ziZPtBv18eB8dgfk1arPg6URAZMJLY5ulzPvlpq+XvSiU69z2eyWXryY+NgDq+Nu3yzrZ16foskdbu+r4069cdTTMaPJMVivR8Nx35M65nMotWez3laSPT5lYV6PZn8rHPDlWr50faarWNY/PNKd6/fTtz7tkt9G9fPauW8AwQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABqDCRAAAACAxtjfINSQJn0TKNX1gVOWCdPMBHbuRztSbTks7dintsyrHTGp76czSgRlrtfD0don9ufymXT8+ZtM6uFnJxY2bR139Pw2LnTsvu4FW8dy1AP/XPCZJJ0f14PcBong0EyQ2+akHtaXqWPLBJBuJ+q4MPQBli5sc2vsgwfP7KxWy/tmH5L0H8/dZbe598jlavnxvg90bJnwyTNb9T4iSTtDf+zdfq70fX/ttcxYkgjS3BnX25oJDj29XT+/krTU8YGcztbowWr5ggkwlaRWIsz4qfX64xkN/TiwvFIPfh0e8cfVBVFL0tCEsl4a1cOBJemPtu+tlj9qwnKzLo3qIeBPD30/enzzWLV8/WJ9H5LU6vo+ULbMNWyCUiUfltpu+TrcONFr+7EzY22hHqg7TARRn96uB1qPEnWsdRMB0CY0eWPsw7mX2vXx6Oyg3hc3J3943TLeAQIAAADQGHt6CTsiHpW0LmksaVRKeWgejQIAAACAW2Een+H5L0sp5+ZQDwAAAADcUnwEDgAAAEBj7HUCVCT9ekR8OCLe9FwbRMSbIuKRiHhkMPRfsgYAAACAW2WvH4H7ilLKkxFxl6T3R8R/LKV8cPcGpZSHJT0sSUdW7/NL3QAAAADALbKnd4BKKU/O/v+0pF+U9Op5NAoAAAAAboWbngBFxHJErF79t6SvlvSxeTUMAAAAAOZtLx+BOynpFyPiaj0/XUr5tdoflFZotGh2mQjtdFymXGnVQyP3qx2pthyWduxTWzLtiESIqVNaPlhytFzvqy5sVZJi5F9jGC3V65ks+Mc73Km3tSXf1s1EUKbjgs8kacmE9bWKf7w9E8iZCVEcziEsNRO4enFSD/x7YnDC1nE5EZLYMcfk0Q2/n20TtlmKvz4HA39bOdKrh08OEkF8rg8MRr6OditxXQzr18VgnGirCUHMXJ8TmbDjvv+O7cbQBw+6bTpzCIXMtGPLHHdJGplj3277troeHYlb42Tix3m3zac277R1XO7Xx4FFExopSTsTf31eHNb3kzp/o/r5Kya8W5ImJqBUktQ311YmCNW0ZaXnj+vWsB6InBknFhJhxu76c2HlmbacH/iQ2ssj3wdcwPOVsQ+RPtqtB79eMG0dVa67m54AlVI+LelLbvbvAQAAAGC/sQw2AAAAgMZgAgQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDH2kgN0w2JS1Nmor3Nus1USi/InoiqsTMaLa8vzqR2ptuzXuUkckkmvPrefdP3cf7i899cHJn3f2NJxx9Xvp9sfVctdvouUy15x2TlnR0dsHUe6O9XytZbPXHC2E/k8k0RewqZ7vGP/eD87XKuWPz3wdTyxVa9Dknrteh+4uOOzhIYmq8TlOmRdMm1pJ7JmJiYz48hCvZ9J0vbIXxfrOz7vwlnt+7Y4Y3Nuljr+ujl/xed72MyiRB9Y7NTPzUYi48c9XkkajevbjE15dj9Op+Pzz2p5JJJ0ebBg65hHRlMmj2bFjNEu40eSLu3UH0/7gr/2xkfrY5okxXb98ZRVn61TTD/J5HS5sXHBjM+SzzaTpAvmXu6uPclfw5lrPNMHXD3umpCkM+Y5hXveUrvP8w4QAAAAgMZgAgQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABpjX4NQSys0XjK7dGGbrUQq5H7Ukann+VRHpp59qiPGiXDRdr2eGPk6XBbYuJcIfk28xOCCUFsriSA3kzA7mPhLvRM+RG/H1PPpwZ22jm7UA+HW2lu2jiNRD+obJF7bGcgHAm6VevDg+tiHF54brlbLn7ziQ07nFWTrTEw/yuQYr61csdt0Tdima0dGJsxvMPLHbGfYrZb3Oj7g0AWuZh7vQmI/jjvukjQ2bckc10mqp9RlwnBd9nbPBERLUsvsZ2HRB8wu9vwY7UJb3Rguyd6U1np+7MwEQG+N6n1+25RLPmA2kVUtTRL32H79/LVd0Likiep1xBzCfzPXRCtxD7aBuiaAVpKWuvU+nbnG5xG6m9mPzLnZGdfv0bXjzjtAAAAAABqDCRAAAACAxmACBAAAAKAxmAABAAAAaAwmQAAAAAAagwkQAAAAgMZgAgQAAACgMZgAAQAAAGiMfQ1CjXFRZ8MEhrlcpL3nq+Vk8pn2oy2HpR3SbXVuJn2TspZoqws6Ha5kglB9WJh7GWIy9IlxpVsPOMwEjvXaPjTw8mixWt5t+aDF8+OVank7EQY3ifpBGydO8LD44W9zUg9Zy1htb1fLjyfCCxfbPmjRneMLg/q5k6QLO0t2G2cl0QdetHKuWp4Ja/z0xolq+fqOP3cTEyooScUFIifqcFZ6Pmxzx4SputBBKTdEL3XrfS0TmOxCeTPBr5lg0L5p6yD8Nb66YEKVzXGXpF4iYNYFoWZCak8urNttnE5iLHHnZ63vw44vbJnxJnFrzHTY7ooJ9WwnwkXNU+FxYjzqm/tnps+3E/fpZRNimtmPG7MuD3yY6kLi+cLIHLeVbv3ak/x4szmsj/NRecLIO0AAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABqDCRAAAACAxmACBAAAAKAx9jUHSKWoNTBr3bvQhVZizjYy6763E4vLu3Zk2uLakWnLYWlHpi37dG4mXZ93MV6ob5NYKl+D5fpGY79UviZdv01p1Y9rq+fzITqd+nHNZIR0wu9naNb1byVCmpZa9bX/FyKTeVN/vNuJ/J5nTB6RJD0xOF4tX090gp1JfZh1jyVrx2SvbI16to6h6SeZjIlO1z+eK2PfFmepU8/DWO3729uFsc9GGpv8liNL9ZwnyceZZLKv2iZTLJPLcemK76/3HrlcLV/s+OuzW+pjictMkaROIkNtY2AyQEzGj+RzVUaJnKeL274fnViu531lMn5Wu/W+1k6E6+wkbkrL5tp6ZnvZ1rHYq/eTy0uJcS+xSa9f70vuupGkxX69rZlxr9eqtyOTxZfhcnFGifc1Op16WzPPBTLZVxsmo8cdM0naHtf7q8vPisqps0cqIt4ZEU9HxMd2/e54RLw/Ij45+/8xVw8AAAAAHLTMR+B+QtJrr/nd90v6QCnlpZI+MPsZAAAAAA41OwEqpXxQ0vlrfv2Nkt41+/e7JL1+zu0CAAAAgLm72UUQTpZSnpr9+7Skk3NqDwAAAADcMnteBa6UUqTrf/M5It4UEY9ExCPDUf1LgAAAAABwK93sBOhMRNwjSbP/P329DUspD5dSHiqlPNTtLN3k7gAAAABg7252AvReSW+c/fuNkn55Ps0BAAAAgFsnswz2z0j6HUlfGBFPRMR3SPphSX8hIj4p6atmPwMAAADAoWaT4kopb7hO0Wvm3JYpl1m1528tJWWyCfejLYelHdLhOTcZLrS1lo414/LiTL7ltBmJUEj169u0Oz5wbHmhHlx3accHIJZE2NtKtx4seEfXh/nd3blULX+gvWHrWDBN3S6+jrOJ/XSjHtT20c0HbR2nrtRj0jIhtYNEZ3OhcuNEoKNry9CEgkpS34TsSdKdvXo/yYQGunDCCzv+I9dHEkGZYdrSTQQtumOSCTG9a7F+zNa6V2wdf+qu03YbF7TYT4QXTkz06wsWn7F1ZHxy865q+cgEN0u+Hw3G/tq7a9mPJfcvXayWv3DxrK3jge61C/I+WyZUeSsREv3Yzh3V8sV2/X4jSae3j1TLz66s2jomAz82LvXrbXFBmZJ0ZZBILDfuNtfnOHF/zVxbrp6RCcSWfBDxFRM+KkmLbR+I7EKEV0zgriQd79XXDji3Uw80r41nh+kpKwAAAADcUkyAAAAAADQGEyAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0BhMgAAAAAI2RSDKZo3ZLo9VedZOY1DMXSiK/JUwGTGkl6jDtyLTFtSPTlsPSjkxb9uvcZLh6SifzeOvlYx+to1jyGQTRqe+o1fLnz+WM3L182dbRa/m2OluT+vUtSadHR6vlC+HzBdZa9fyATOZCW/64njBZQS9eeNrWMSz1XIbHto7bOkaJa3hzWM/3OL3uczfaJtOml1IdgiYAABaHSURBVMik2hn528qx7qbdxjnfXq6WZ7KEOon8ne12/fG4YyZJx/r1LIu7+j5HxmXrHOvW9yFJV8b++jzZr48V3dj7OJGpY2Ps82o2TJ/fL53E47k4WKyWX+jU+7MkvahXzwpabvlcq7WW7yctE/p3tFPPXpH8Of5I6wFbR2n7a2u1X3/MmXFgqVu/55xY8OPVame7Xt6ul0tSK3FPcllBmWvc5fy4LDAplwO0bPKi1hJj1j29en7WPb16ruAHK88VeAcIAAAAQGMwAQIAAADQGEyAAAAAADQGEyAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0BhMgAAAAAI2xr0GoJaRxrz7nSmRWzaUdzn60Q/JtOSztkA7PucmY9OsVjbt7D0Jt+Rwwtbo+UMwd2JI4KFeG9Ut5NKmHcc7L75x/kd1m42g9QfYTV+6zdWRC5Zx7uxfsNgvmJHfDB2ne1asHS2aC6z76jD8m3XY9eDATYjqe1PvacOxfM9sxfVGSdib1IL6MRROGu9ypl0vS9ti39fhiPazvZUdO2zru69fD/F7S93W4UN5MuOj2qj/uLqj47OiIrePxnRPV8s2RDzA9P1iy21wa1MeS1Z4PBu2ZYMlOIug2FWBpQncf3aofM8mHYN7fO2/rWGv78Em3jRsXJR80vbpyxdaxvlEPj5WkxU69LZkg1MG4fn883vPHbDSpj43Dlr8HH237Y+KCP13wtiRtm/H3wshfe8c6ew8xfXHvjK3jhAnuHZuA6J+sPFfgHSAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0BhMgAAAAAI3BBAgAAABAYzABAgAAANAYTIAAAAAANMa+BqEqpNKphxYVlzmWCcp0uVeJaZ9tR6YtmeBQ05bD0o5UW/bp3KQej9mms+0r2bjP9NVEW8cDv1G7Vz+wvZ4P25yHTFiqC5WbJA7KZ0zg30oiwLLbr4c+ZoL6nhmv2G3a4/q5yYRPLpnAzhO9esClJC13/TFxOiYoVZJ6HXd+/UW+0PHhk+64tVwKsaS7euv1DfzpTQWyTszA5kJOJelF/aer5S/uPmPrONry58/ZKf7cLEe9r62ZYMKMx+VDPzuJx/vM9nK1fKHtxwG3zZFEf8609cq43teW2/4adwHQq4kgzbX2pt1mbMbxYfFPHc+NEhega8fA35PWevXHnBlLLprQ3eW27wMuoPR4x4/zLWWe8NWdSOzHcedfktYnPqR2bO4XmxMfiLzWqp/frjm/UXkyyDtAAAAAABqDCRAAAACAxmACBAAAAKAxmAABAAAAaAwmQAAAAAAagwkQAAAAgMZgAgQAAACgMfY3B2gitXb2vs45YEV9bj9a8HP/wZF6+XA1E0i0d52Wv2aWe/Usi0xOxVIif2fRZGac6PqMiSWTd9FKBD21zdr/meyHTGaRy7bK5CVsjBeq5ad3TEdLGpm2HOn5LIswOU8uB0ryuRyS9CWLj9ttnNOjo9XyS6NETkXiNUCXj7U16dk6njGZKJl+tGryMDKG8rkqri3nE/lZF0b1fJ5zO76OzbE/rq6/3r1w2dbhMqmGxR+zTIaaGzs3Rz4TxbWlnRk7E9sst+p5Q71E/tlRk0nUbvl2dPo+A+94r37PyYxZJ/v1TLEvXjpl61hr1/OxvqBzwdbhMm0y22TOb9fe12wV+uy4np0kSZ8c3F0tPzX0eWDbpZ6f5TKprpTrH3c76kbEOyPi6Yj42K7f/WBEPBkRH5399zpXDwAAAAActMxH4H5C0muf4/dvLaW8cvbf++bbLAAAAACYPzsBKqV8UNL5fWgLAAAAANxSe1kE4Tsj4vdnH5E7NrcWAQAAAMAtcrMToB+T9GJJr5T0lKS3XG/DiHhTRDwSEY8Mh/4L0gAAAABwq9zUBKiUcqaUMi6lTCT9uKRXV7Z9uJTyUCnloW63vjIMAAAAANxKNzUBioh7dv34TZI+dr1tAQAAAOCwsDlAEfEzkr5S0h0R8YSkvyvpKyPilZKKpEcl/bVb2EYAAAAAmAs7ASqlvOE5fv2Om92hy6SKSX2DEibBSVIUU0crUYdpR6Ytrh2ZthyWdmTacpjOjdtk4pLAJNmst0TAWuKQqJUIOt2rTFBfJoTNhfn1Wz64rt+q17EQifC7zka1vC3/WDYnPnhwfVIPMc2FztU7UjvRjwaJ8+cCc11QqiRtD+u3hExbV7o+cPVBEwrYSwUC1vtJ5vxeGvkwv4lJw72ne9HWsWpCIccucVc++HV94oNfM9fFmWF9P2cHq7aOyybU89y2D0LtzSG8OTMeOZOJv24yoa3r2/Vjkgm8dqG7jw3usHVsdnxbt0t9m0w47FODej/a3PbtGG7bp6i6r1+//jKh2Peaa/iL+0/aOpbNeHS8tZc1x/6EuyraiQ92bZf6MTk/qYePSrkQ04smLNUFJkvSkzv1Ndae2jHj4uhT1y2bzxkBAAAAgNsAEyAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0BhMgAAAAAI3BBAgAAABAY/hF1ueotKXhan39eJu9Mqd2OPvRDsm35bC0Qzo856Y1nEM20tjX0Vuvl0/6PrtjZ5h4jcHElawu+FyVlV59m4VOPXtHkq6M/dr/l4b1XJxzbZ/vcaS7XS3vJDpaK+6sls8j/yMjk6uyM6kPs+d2fBbC5sBnZix06o/50pX6uZOktski6XX8uTl7xfeBHXOhu+wdSVqOegbMS3unbR1bXZ8VdNrk4riMn4z1sc/wGZvXKyeJnKed4q9xlzXTSeTzuLyocSJbZ5LIxXG1nNnxmUWOyz7LbtMxeTSTksiC2jlSLW/1/X0tk+HjsnMy+Vl/vFHPJNre9GNatP3jOdm9VC13OWySH8e3Erk4XdNfW5lQwIT1SX0/2/6Q6bwZby5O/PnNWIj6dbHSrj8XkKRzk/o1PDbXTe1w8A4QAAAAgMZgAgQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABpjX4NQFaFx1wRUJoIw9yqRF7cv7ZB8Ww5LO6TDc25KyweKxaSeBpapw+RXauxzJaWWTyVrtevBZn0TcClJCyaIb7Xjw1QzQXwjc4IuDnygo+OCUiXpeGdzz/txAaWStDmuB2VujHyY32hSv3A2hj6M0wWUStLQhEt22ntPMl7u1cNHJanf9v110wRyLsjXMVD9uA5NuSQNEqGQw1LvJ71E0OIDnfPV8oXe3s/NOBEem3F2XA/mfXJ4zNbxxzsnq+U7Y3/tPbVVD/2UpFUTAL3S8f21Z0KTl1q+jsxY0lK9z7vw0ek29fvJQssHsmaCQV1bMvvpmfGmTBL38USXfmynHri61Pb3vgd756rlmWO2asboncT9NfOOxJI5KN1q9OfUVtT7vAswlaS19pbdxoVEjxNP+B7o1sfObtxfLe9Vgpt5BwgAAABAYzABAgAAANAYTIAAAAAANAYTIAAAAACNwQQIAAAAQGMwAQIAAADQGEyAAAAAADQGEyAAAAAAjbG/QahFqmQSSfIBlnNpRiKQaj/aIfm2HJZ2SLfXuSkmLCyRfyiTganxkg+uay/4ALUjy/Xgz8WODyVbMtv0TdifJA0ToWQPLtVDye7obtg6XKjc+VE9iHG6n3W7jbPlTrD8cTve9YGs54f1x7OVCFPtJoJQB+N6p24nQnm7Jryw6wZw1YPnrjo7rodcZoL4nO2JP64u5FTy/fF4x/f5zVJvS1s+rNGFYGaCjAeJ1zy3TUjtuZEPKH1msFItnyRCWzOBui7EdDERYrpoQqQzocuZENpT28er5ZsjPx65PrDV8X3+C3rP2G3aLgg1cX0ut+vHvr/sz83gSr0vStLjV+rHda3rAztf2j9TLW8nwkXnYbv4/bg7wcVEKK8bBzL9+fHhCbvN0DzRWm75cc+FpbrnE1E5d7wDBAAAAKAxmAABAAAAaAwmQAAAAAAagwkQAAAAgMZgAgQAAACgMZgAAQAAAGgMJkAAAAAAGmNfc4CiFLW366uYm+XnlYg6kFkqXyWRh+HakWmLa0emLYelHZm27Nu5GfttRsv19ecTkTeauAiCzHFNnL+lbj1ToWPWuZd8Psvd/Uu+IQluzf1jicyMtkkyyGQQuHZkLLV9BkHX5Izs2E7is0hO9P0xGyU67MagniMSmYHA2Br6nJHtkT8mLdMHXLkkbRWfm+KME4OW62sfWn+RreN344XV8mMdn1Xisq9WW1dsHdsmj0iSNsYL1fJzw3rGjyRdHC5Wy11mlSQtdXxOzLFe/TF3EvlZS+b6XEpklWTypFbMeDNJXOPuuGa4nCdJapsbV6aOzXG9r00m/toriW12TO5NJgPv1KCeaXN3298/h8VlI/nxd2cOcUMLiXujyzU6n+jPbpyQ/Fjhzp3ks4TWR/V2DCr7sFdcRDwQEb8ZEX8YER+PiO+e/f54RLw/Ij45+/8xVxcAAAAAHKTMR+BGkr6nlPJySV8m6W9ExMslfb+kD5RSXirpA7OfAQAAAODQshOgUspTpZTfm/17XdInJN0n6RslvWu22bskvf5WNRIAAAAA5uGGFkGIiBdIepWkD0k6WUp5alZ0WtLJubYMAAAAAOYsPQGKiBVJ75H05lLK5d1lpZSi63zDKyLeFBGPRMQjw4H/si8AAAAA3CqpCVBEdDWd/Ly7lPILs1+fiYh7ZuX3SHr6uf62lPJwKeWhUspD3d7yPNoMAAAAADclswpcSHqHpE+UUn50V9F7Jb1x9u83Svrl+TcPAAAAAOYnkwP05ZK+TdIfRMRHZ7/7AUk/LOnnIuI7JD0m6ZtvTRMBAAAAYD7sBKiU8tvSdZMJX3MjOyut0Gix/qaTDf5MhG26vKlMCGYmgNS2JRVAenu0I9WWfTo3rUQQ6qRTb0zmuLr8tBglQhT7PoSt365vc/diPQBR8mGp64nQstHEH/yWCdPMhCTOg2vHanvb1rGS2GYh6udmEv6YLbbrAXk7Exeg5x+vJB3p+8fjuH50tOf30UlcXL05BNm6sNRMWGPGxAxsL1h4xtbRb9XPsQv7k3zobqaOzDYukNOFLkvS8V79+76LbR/IemHgQz9dQHBmTFtN9Ol5uKO7US3fmvhj4o79OBOYnLgXuHo2xj6E+OKOOX+Z5PTENhvDelvG5jmnJK2264G6FydLto47TR298I9lObHN0DyJ2pz4e4W742TCf092fTisez5wceiPq7v3bY7q100t7PqGVoEDAAAAgNsZEyAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0BhMgAAAAAI3BBAgAAABAYzABAgAAANAYNgh1roqUyPOzdezVnttw1WFpS8PaURJhYRPTs0f9RB0mR3Gy6AMf+z0fhHr/8sVq+Z09H4TaN4GdRztbto4MF9aXCdlrmY6yYEIjMzKBgKlQyDl06h3TGV25lAt0XDCBq6PE43XbXBn7cNFMEOrA7KeXyEhcn9SDFjcnPqwx0weWWgNT7kMDbTvk29FKpWLvnduPG2sk6e7e5Wr5M8NlW4cLOZV8X7srMXa6EMzM+XXhsZJ02fTXFyycs3VsdOvjq+urUq7PXxrX23pq65it4+K2D7J1Wl0furvUqT/mbiJ0+c5Ovb++qHve1nG0VR+0Vls+6LaTGAdGqj+ero05lYYTEyLtnvwk9U2a/D0LPkzVnb/jvfpx7bev//e8AwQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABpjX3OAYlLU2ayv6R3jeu5GafuAiP2oI1PP86mOTD37VYcSOUCD1XrXNnE20924uItMZpHfxBpOfDbA0W49yyKThZDRNo8okxFyvLNRLc/kALmcn0vjJVtHJg9DJmckk81ytFM/N5Pi+3NreX8yYNaH9ZyR7bG/ZQwSWRYT89pbK5FlsdqqH9f1RCaVy7WSpK1xPU8okxPj+nwmd+PM6Gi13F2bWS7TZh45XRmrne192c+g1Pv0qnw7FhJ9wGVf7cj3gXu69cy45TlkUknSSrv+mI+a7CRJ6rTq95zf237A1rFd/DFZNPlnmf66HPUsobXEWwUu56cf/rEMi79Pbxd/j3WOm8dzNtGPTg3943HHfiExzrvnLm1zD27r+uW8AwQAAACgMZgAAQAAAGgMJkAAAAAAGoMJEAAAAIDGYAIEAAAAoDGYAAEAAABoDCZAAAAAABqDCRAAAACAxtjXINTSDg1X6mFgMZ8st3o7Mlmb+9AOybflsLRDur3OTWtU3ygmfkc2g63rwykXunsPLRsnXqdwoZ4LJugta9iq7ycT6NgyJ9AFE0rSjtlPJvi1nwjIc/W4dkjSJPb+OtNg4o9JywRhuuM+L5n9dBOBuc76ZLFavjWpB5hmnexeqpa/qPe0reO+zuVq+Vh+PPr0sB5O+cxoxdaxPvHhsDsmCHUeOq1EsG9ik36r3o8yYce1oMQsF+w7bUv9Gs70gRMuRDrmE1LrQluHbX9cVzr1e85iz7d1NPLHda27VW+HCXWV/OM9O85cE/XH202Ffu792hsmApE3J/VtMs85MqG7bfMcKXOvd89d3DjfqdzDeQcIAAAAQGMwAQIAAADQGEyAAAAAADQGEyAAAAAAjcEECAAAAEBjMAECAAAA0BhMgAAAAAA0xv7mAIU0WqivdR97X5LftyMx7duPdki+LYelHdLhOTcm+kGSNO7V+9nExxjIRpUkQouGI7+jS8N6Nsdie+95Nf2WzwhpJ/IDts26/d3EyXH5AZlcjrGpY5wJlEromePq2iFJrfFStfx8a9nWsTP2Q/XGqJ6HMBj7vjg0F8YwUUe37TOYNk12gzvuGZmcp4y1dj1n5ER709bhMpo2E3kYzhf1P2u3yeR7TMwg/PjwuK3DZTSlsnfm8PJsJgfIyeTzLCfyd1yGz/LEjyVrrXpfzOQAZR7PZqt+fa5P/PV5+spqtfzKIJGhlsjr2xjX25rKajOdbTvRj7ZL/ZhsJ+6vKv66GJpqBoknUeulZ/ax9+tGkpbc/TExDLicH5dtVhvz7JGKiAci4jcj4g8j4uMR8d2z3/9gRDwZER+d/fc6VxcAAAAAHKTMy04jSd9TSvm9iFiV9OGIeP+s7K2llB+5dc0DAAAAgPmxE6BSylOSnpr9ez0iPiHpvlvdMAAAAACYtxv6lG1EvEDSqyR9aPar74yI34+Id0bEsTm3DQAAAADmKj0BiogVSe+R9OZSymVJPybpxZJeqek7RG+5zt+9KSIeiYhHRjv+y6IAAAAAcKukJkAR0dV08vPuUsovSFIp5UwpZVxKmUj6cUmvfq6/LaU8XEp5qJTyUKfvVzsCAAAAgFslswpcSHqHpE+UUn501+/v2bXZN0n62PybBwAAAADzk1kF7sslfZukP4iIj85+9wOS3hARr5RUJD0q6a/dkhYCAAAAwJxEKYlwpnntLOKspMd2/eoOSef2rQHA3tBfcTuhv+J2QV/F7YT+evt4sJRy53MV7OsE6PN2HvFIKeWhA2sAcAPor7id0F9xu6Cv4nZCf31+uKFlsAEAAADgdsYECAAAAEBjHPQE6OED3j9wI+ivuJ3QX3G7oK/idkJ/fR440O8AAQAAAMB+Ouh3gAAAAABg3zABAgAAANAYTIAAAAAANAYTIAAAAACNwQQIAAAAQGP8/w69XEJNPB1MAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 1030.15x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    }
  ]
}